In a typical VoIP communications system, a network services provider (i.e., the owner and manager of a network/telephony infrastructure) and a telephone services provider (i.e., a customer-facing provider of telephony services) work together to offer VoIP services to customers over a data network. The network services provider controls the physical media through which the VoIP data travels (e.g., the fiber-optic network and the optical networking equipment) and the proxy servers and voice gateway routers that direct and control the flow of VoIP data. The underlying system is generally capable of creating a basic communications session, with assistance of the telephone services provider in the form of subscriber identifying information (e.g., a telephone number). The telephone services provider typically develops the voice applications that enable the proxy servers and voice gateway routers to handle VoIP calls in accordance with the VoIP telephone services offered by the telephone services provider. The telephone services provider also controls back-end computer systems that may be accessed by the proxy servers or voice gateway routers in response to procedure calls generated while executing a voice application. The back-end computer systems typically store customer-specific, voice-services-related configuration data.
The proxy servers and the voice gateway routers manage the voice paths of VoIP calls and the signaling used to setup and tear down the VoIP calls in accordance with the voice applications developed by the telephone services provider. The voice applications are typically scripts containing Application Programming Interface (API) commands that, when executed by a voice gateway router, manage a VoIP call in accordance with a VoIP service offered to a customer. More particularly, call signals arrive at the voice gateway router, and the voice gateway router processes the signals in a predefined manner that is indicated by the API-based voice applications. At well defined points in the processing of the messaging, the voice gateway router may use API commands to retrieve particular pieces information required by the voice applications. The API commands facilitate development of voice applications and, hence, VoIP services by providing building blocks that may be put together to construct voice applications that offer typical voice services.